home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Czech Logic, Card & Gambling Games
/
Logické hry.iso
/
hry
/
Fish Fillets
/
script
/
snowman
/
code.lua
next >
Wrap
Text File
|
2005-07-16
|
5KB
|
132 lines
-- -----------------------------------------------------------------
-- Init
-- -----------------------------------------------------------------
local function prog_init()
initModels()
sound_playMusic("music/rybky05.ogg")
local pokus = getRestartCount()
local roompole = createArray(3)
-- -------------------------------------------------------------
local function prog_init_room()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
room.rozh = random(50) + 10
--NOTE: turn off standard black jokes
stdBlackJoke = function() end
return function()
if game_getCycles() == room.rozh then
room.rozh = room.rozh + 500 + random(1000)
if no_dialog() then
if random(5) == 1 then
addm(2, "tr-m-ztuhl")
else
addm(3, "tr-m-chlad"..(random(2) + 1))
if game_getCycles() < 2000 or random(3) == 1 then
addv(5, "tr-v-jid"..(random(2) + 1))
end
end
end
end
if isReady(small) and not isReady(big) and not big:isOut() then
if snehulak.Y <= 5 then
if roompole[1] == 0 or pokus - roompole[1] > random(20) then
roompole[1] = pokus
addm(11, "tr-m-cvicit")
end
end
end
if isReady(big) and not small:isAlive() then
if snehulak.Y >= 5 then
if roompole[2] == 0 or pokus - roompole[2] > random(20) then
roompole[2] = pokus
addv(14, "tr-v-prezil")
end
end
end
if snehulak.uder > 4 and no_dialog() and isReady(big) and isReady(small) then
if odd(pokus) then
addv(4, "tr-v-agres")
snehulak.uder = -10
end
end
end
end
-- -------------------------------------------------------------
local function prog_init_snehulak()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
snehulak.prastil = 0
snehulak.uder = 0
return function()
if snehulak.dir == dir_down and ocel.dir ~= dir_down then
snehulak.afaze = 2
else
if snehulak.afaze == 2 then
snehulak.afaze = 1
end
pom1 = snehulak.afaze
pomb1 = isReady(small) and small.X + 2 == snehulak.X and small.Y - 2 == snehulak.Y and not small:isLeft()
if not pomb1 then
snehulak.afaze = 0
snehulak.prastil = 0
elseif snehulak.dir == dir_right then
if odd(game_getCycles()) then
snehulak.afaze = 1 - snehulak.afaze
end
else
if snehulak.prastil == 0 then
snehulak.prastil = -3
snehulak.afaze = 1
else
if snehulak.prastil < -1 then
snehulak.prastil = snehulak.prastil + 1
end
if snehulak.prastil == -1 then
snehulak.afaze = 0
end
end
end
if pom1 == 0 and snehulak.afaze == 1 then
snehulak:talk("tr-x-koste", VOLUME_FULL)
if no_dialog() then
addm(2, "tr-m-au"..(random(2) + 1))
end
snehulak.uder = snehulak.uder + 1
end
end
snehulak:updateAnim()
end
end
-- --------------------
local update_table = {}
local subinit
subinit = prog_init_room()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_snehulak()
if subinit then
table.insert(update_table, subinit)
end
return update_table
end
local update_table = prog_init()
-- -----------------------------------------------------------------
-- Update
-- -----------------------------------------------------------------
function prog_update()
for key, subupdate in pairs(update_table) do
subupdate()
end
end